<?php
/**
 *  登录状态验证
 */
function check_login(){
    $username = session('user');
    if(empty($username)){
        $admin = cookie('user');
        $login_time = cookie('login_time');
        if(empty($admin) || empty($login_time)){
            return 0;
        }else{
            session('user',cookie('user'));
            return 1;
        }
    }else return 1;
}


/**
 * 分页  计算展示的页码数
 * table 数据库
 * sql 查询语句
 * page 当前页码
 * num 当页展示个数
 * ge 页码显示个数
 */

function getPage($table,$sql,$page,$num,$ge){

    $count = M($table)->where($sql)->count();
    $all = ceil( $count / $num);
    if( $page <= 0) $page =0;
    if($page >= $all && $all != 0) $page = $all-1;
    $k = $ge;
    $p = floor( $page / $k );
    $res['total'] = $all;
    $res['page'] = $page;
    if($all == 0){
        $res['num']=0;
    }elseif( $p < 1 ){  //少于10页
        $p = $all <= $ge ? $all: $ge;
        for($i = 1; $i<= $p ; $i++)
            $res['num'][]=$i;
    }elseif( $p >= 1 && ($all - $page) >$ge ){ //中间页数
        for($i = $p*$k; $i <= $p*$k+$ge; $i++)
            $res['num'][]=$i;
    }else{ //最后10页内
        for($i = $all-$ge; $i <= $all; $i++)
            $res['num'][]=$i;
    }

    return $res;

}

/**
 * 手机号判断
 */
function isMobile($phone){
    if(!preg_match("/^0?1[3|4|5|7|8][0-9]\d{8}$/",$phone)){
        return 0;
    }else{
        return 1;
    }
}

/**
 *  邮箱验证
 */
function checkEmail($email){
    $pattern = "/^([0-9A-Za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]{2,3}(\\.[a-z]{2})?)$/i";
    if ( preg_match( $pattern, $email ) )
    { return true;}
    else {
        return false;
    }
}

/**
 * 将手机号中间展示*
 */

function changeMobile($phone){
//    $xing = substr($phone,3,4);  //获取手机号中间四位
//    $phone = str_replace($xing,'****',$phone);  //用****进行替换
    //或者
    $phone = substr_replace($phone, '****', 3, 4);
    return $phone;
}

/**
 * @param $table
 * @param $filed
 * @param $value
 * 查找是否有该字段
 */

function existData($table,$filed,$value){
        return   M($table)->where(array($filed=>$value))->getField('id');
}


/**
 * 获取当前时间
 */
function getTime(){
    return date('Y-m-d H:i:s');
}

/**
 * 数据是否存在
 * @param  table 数据表
 * @param field 字段
 * @return value  值
 * id    不为该id
 */
function haveData($table,$field,$value, $id = ''){
    if($id) return M($table)->where(array($field=>$value,'id'=>array('neq',$id)))->getField('id');
    return M($table)->where(array($field=>$value))->getField('id');
}

/**
 *  多图拼接
 */
function getUpPics($file){
    $arr    =   array();
    foreach($file['name'] as $k => $v){
        $one['name']        =   $file['name'][$k];
        $one['type']        =   $file['type'][$k];
        $one['tmp_name']    =   $file['tmp_name'][$k];
        $one['error']       =   $file['error'][$k];
        $one['size']        =   $file['size'][$k];
        $arr[]              =   $one;
    }
    return $arr;
}

/**
 *  上传图片
 * @param $file  文件
 * @param $dir  地址
 * @param string $mini  是否上传缩略图
 * @return string
 */
function upPic($file,$dir,$mini = ''){
    $upload = new \Think\Upload();// 实例化上传类
    $upload->maxSize = 5*1024*1024 ;// 设置附件上传大小 5m
    $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
    $upload->rootPath = $dir; // 设置附件上传根目录
    $upload->savePath = ''; // 设置附件上传（子）目录
//    $upload->saveName       =   'msectime'; //自定义函数，采用13位毫秒和3位随机数
    $info = $upload->uploadOne($file);// 上传文件
    if(!$info) {// 上传错误提示错误信息
        $data['tag']    =   1;
        $data['msg']    =   $upload->getError();
        return $data;
    }else{// 上传本地成功
        if($mini){
            $image = new \Think\Image();
            $thumb_file = $dir . $info['savepath'] . $info['savename'];
            $save_path = $dir .$info['savepath'] . 'mini_' . $info['savename'];
            $image->open( $thumb_file )->save( $thumb_file );
            $image->open( $thumb_file )->thumb( 120, 140 )->save( $save_path );
            //                ->text('德兴房产','./data/1.otf',24,'#A7AAA4',\Think\Image::IMAGE_WATER_SOUTHWEST)
            //                $pic = "/Uploads/users/".$info['savepath'].$info['savename'];
            $data['mini_pic']  =   trim($save_path,'.');
            $data['pic']  =   trim($thumb_file,'.');
            $this_pic = ".".$dir.$info['savepath'].$info['savename'];
            unlink($this_pic);
        }else{
            $data = trim($dir,'.').$info['savepath'].$info['savename'];
        }

    }
    return $data;
}

/**
 *  上传图片
 * @param $file  文件
 * @param $dir  地址
 * @return string
 */
function upfile($file,$dir){

    $upload = new \Think\Upload();// 实例化上传类
    $upload->maxSize = 50*1024*1024 ;// 设置附件上传大小 5m
    $upload->exts = array('mp4', 'avi', 'rmvb', 'wmv');// 设置附件上传类型
    $upload->rootPath = $dir; // 设置附件上传根目录
    $upload->savePath = ''; // 设置附件上传（子）目录
    $upload->saveName       =   'msectime'; //自定义函数，采用13位毫秒和3位随机数
    $info = $upload->uploadOne($file);// 上传文件

    if(!$info) {// 上传错误提示错误信息
        $data['tag']    =   1;
        $data['msg']    =   $upload->getError();
        return $data;
    }else{// 上传本地成功
        $data = trim($dir,'.').$info['savepath'].$info['savename'];
    }
    return $data;
}


function delPic($pic){
    unlink('.'.$pic);
}



/**
 * 去除数组id
 * @param $arr
 * @return string
 */
function    getArrIds($arr){
    $ids    =   "";
    foreach($arr as $k => $v){
        $ids    =   $ids.','.$v['id'];
    }
    return trim($ids,',');
}
